Certain types of software applications are developed by software developers (e.g. content provider) and distributed to one or more content brokers (e.g. Operators) who then distribute the software to their customers. An operator, for example, operates one or more websites that contain catalogs of available software that can be selected and downloaded by users. Downloaded software can then be installed and executed on a user's device such as a computer, cell phone, portable computer, hand-held devices, and others. Typically, each operator desires to control usage of the software by users. To control the usage of a software application, Digital Rights Management (DRM) logic can be programmed into the software application to define selected rules and usage rights for how the software, or other digital media object, can be used after it has been downloaded or otherwise delivered to a device. Examples of usage rights can be try-and-buy preview rights, user subscription base usage control rights, forward locking rules, and other types of rules and rights. Although the software application (e.g. a chess game) is developed generically, meaning, developed to be used for any user, each particular operator that distributes the software application potentially desires customized logic to be included within the software to control desired Digital Rights Management or other customized functions.
In prior systems, each operator desiring customized logic would request the software developer to reprogram the software for their specific needs. This created software management challenges since a software developer might have to create, maintain, test, and update numerous versions of one software application where each version is customized for a particular operator. In some situations, testing of customized software would be difficult since the software developer may not have access to actual users using the software. Thus, the software developer would not have a real-time environment to accurately test the functionality of the customized logic.
The present invention provides a new and useful method and system of customizing software.